/*
	This script file is part of the Sonic 3 A.I.R. script software distribution.
	Copyright (C) 2017-2024 by Eukaryot

	Published under the GNU GPLv3 open source software license, see license.txt
	or https://www.gnu.org/licenses/gpl-3.0.en.html
*/



function void LevelRingsTableBuilder.buildRings_CNZ1()
{
	LevelRingsTableBuilder.addRing(0x0000, 0x0000)
	LevelRingsTableBuilder.addRing(0x00f8, 0x0690)
	LevelRingsTableBuilder.addRing(0x0110, 0x0690)
	LevelRingsTableBuilder.addRing(0x0128, 0x0690)
	LevelRingsTableBuilder.addRing(0x0140, 0x0800)
	LevelRingsTableBuilder.addRing(0x0158, 0x0800)
	LevelRingsTableBuilder.addRing(0x0170, 0x0800)
	LevelRingsTableBuilder.addRing(0x03ac, 0x06ec)
	LevelRingsTableBuilder.addRing(0x03d2, 0x06d9)
	LevelRingsTableBuilder.addRing(0x03f0, 0x06c0)
	LevelRingsTableBuilder.addRing(0x040a, 0x06a0)
	LevelRingsTableBuilder.addRing(0x042c, 0x0688)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) == 0)
	{
		LevelRingsTableBuilder.addRing(0x0470, 0x0890)
		LevelRingsTableBuilder.addRing(0x0488, 0x0890)
		LevelRingsTableBuilder.addRing(0x04a0, 0x0890)
	}
	else
	{
		LevelRingsTableBuilder.addRing(0x0478, 0x0890)
		LevelRingsTableBuilder.addRing(0x0490, 0x0890)
		LevelRingsTableBuilder.addRing(0x04a8, 0x0890)
	}

	LevelRingsTableBuilder.addRing(0x061c, 0x0610)
	LevelRingsTableBuilder.addRing(0x0634, 0x0610)
	LevelRingsTableBuilder.addRing(0x064c, 0x0610)
	LevelRingsTableBuilder.addRing(0x0664, 0x0610)
	LevelRingsTableBuilder.addRing(0x071c, 0x0650)
	LevelRingsTableBuilder.addRing(0x0734, 0x0650)
	LevelRingsTableBuilder.addRing(0x074c, 0x0650)
	LevelRingsTableBuilder.addRing(0x0764, 0x0650)
	LevelRingsTableBuilder.addRing(0x07e2, 0x06d0)
	LevelRingsTableBuilder.addRing(0x07ff, 0x06eb)
	LevelRingsTableBuilder.addRing(0x0818, 0x0708)
	LevelRingsTableBuilder.addRing(0x0834, 0x071d)
	LevelRingsTableBuilder.addRing(0x0855, 0x072c)
	LevelRingsTableBuilder.addRing(0x09c4, 0x0220)
	LevelRingsTableBuilder.addRing(0x09c4, 0x0238)
	LevelRingsTableBuilder.addRing(0x09c4, 0x0250)
	LevelRingsTableBuilder.addRing(0x09dc, 0x0220)
	LevelRingsTableBuilder.addRing(0x09dc, 0x0238)
	LevelRingsTableBuilder.addRing(0x09dc, 0x0250)
	LevelRingsTableBuilder.addRing(0x09f4, 0x0220)
	LevelRingsTableBuilder.addRing(0x09f4, 0x0238)
	LevelRingsTableBuilder.addRing(0x09f4, 0x0250)
	LevelRingsTableBuilder.addRing(0x0a0c, 0x0220)
	LevelRingsTableBuilder.addRing(0x0a0c, 0x0238)
	LevelRingsTableBuilder.addRing(0x0a0c, 0x0250)
	LevelRingsTableBuilder.addRing(0x0a58, 0x0358)
	LevelRingsTableBuilder.addRing(0x0a58, 0x0370)
	LevelRingsTableBuilder.addRing(0x0a70, 0x0358)
	LevelRingsTableBuilder.addRing(0x0a70, 0x0370)
	LevelRingsTableBuilder.addRing(0x0a88, 0x0358)
	LevelRingsTableBuilder.addRing(0x0a88, 0x0370)
	LevelRingsTableBuilder.addRing(0x0aa0, 0x0358)
	LevelRingsTableBuilder.addRing(0x0aa0, 0x0370)
	LevelRingsTableBuilder.addRing(0x0abc, 0x00f8)
	LevelRingsTableBuilder.addRing(0x0ac8, 0x00e0)
	LevelRingsTableBuilder.addRing(0x0ad4, 0x00f8)
	LevelRingsTableBuilder.addRing(0x0ae0, 0x00e0)
	LevelRingsTableBuilder.addRing(0x0aec, 0x00f8)
	LevelRingsTableBuilder.addRing(0x0af8, 0x00e0)
	LevelRingsTableBuilder.addRing(0x0b04, 0x00f8)
	LevelRingsTableBuilder.addRing(0x0b1c, 0x0690)
	LevelRingsTableBuilder.addRing(0x0b34, 0x0690)
	LevelRingsTableBuilder.addRing(0x0b4c, 0x0690)
	LevelRingsTableBuilder.addRing(0x0b64, 0x0690)
	LevelRingsTableBuilder.addRing(0x0ba8, 0x0128)
	LevelRingsTableBuilder.addRing(0x0bc0, 0x0128)
	LevelRingsTableBuilder.addRing(0x0bd8, 0x0128)
	LevelRingsTableBuilder.addRing(0x0d20, 0x0630)
	LevelRingsTableBuilder.addRing(0x0d3c, 0x0630)
	LevelRingsTableBuilder.addRing(0x0d58, 0x0630)
	LevelRingsTableBuilder.addRing(0x0d74, 0x04b0)
	LevelRingsTableBuilder.addRing(0x0d74, 0x0630)
	LevelRingsTableBuilder.addRing(0x0d8c, 0x04b0)
	LevelRingsTableBuilder.addRing(0x0d90, 0x0630)
	LevelRingsTableBuilder.addRing(0x0da4, 0x04b0)
	LevelRingsTableBuilder.addRing(0x0dac, 0x0630)
	LevelRingsTableBuilder.addRing(0x0de8, 0x04d0)
	LevelRingsTableBuilder.addRing(0x0e00, 0x04d0)
	LevelRingsTableBuilder.addRing(0x0e18, 0x04d0)
	LevelRingsTableBuilder.addRing(0x0e54, 0x02c8)
	LevelRingsTableBuilder.addRing(0x0e60, 0x02b0)
	LevelRingsTableBuilder.addRing(0x0e6c, 0x02c8)
	LevelRingsTableBuilder.addRing(0x0e70, 0x0324)
	LevelRingsTableBuilder.addRing(0x0e78, 0x02b0)
	LevelRingsTableBuilder.addRing(0x0e84, 0x02c8)
	LevelRingsTableBuilder.addRing(0x0e88, 0x0324)
	LevelRingsTableBuilder.addRing(0x0e90, 0x02b0)
	LevelRingsTableBuilder.addRing(0x0e9c, 0x02c8)
	LevelRingsTableBuilder.addRing(0x0ea0, 0x0324)
	LevelRingsTableBuilder.addRing(0x0edc, 0x0650)
	LevelRingsTableBuilder.addRing(0x0ef4, 0x0650)
	LevelRingsTableBuilder.addRing(0x0f00, 0x030c)
	LevelRingsTableBuilder.addRing(0x0f0c, 0x0650)
	LevelRingsTableBuilder.addRing(0x0f18, 0x030c)
	LevelRingsTableBuilder.addRing(0x0f20, 0x01b0)
	LevelRingsTableBuilder.addRing(0x0f24, 0x0650)
	LevelRingsTableBuilder.addRing(0x0f30, 0x030c)
	LevelRingsTableBuilder.addRing(0x0f38, 0x01b0)
	LevelRingsTableBuilder.addRing(0x0f50, 0x01b0)
	LevelRingsTableBuilder.addRing(0x0f60, 0x0b10)
	LevelRingsTableBuilder.addRing(0x0f68, 0x01b0)
	LevelRingsTableBuilder.addRing(0x0f78, 0x0af8)
	LevelRingsTableBuilder.addRing(0x0f90, 0x0ae0)
	LevelRingsTableBuilder.addRing(0x0fa8, 0x0ac8)
	LevelRingsTableBuilder.addRing(0x0fc0, 0x0ab0)
	LevelRingsTableBuilder.addRing(0x0fd8, 0x00c0)
	LevelRingsTableBuilder.addRing(0x0fd8, 0x0a98)
	LevelRingsTableBuilder.addRing(0x0fdc, 0x06d0)
	LevelRingsTableBuilder.addRing(0x0ff0, 0x00c0)
	LevelRingsTableBuilder.addRing(0x0ff0, 0x0a80)
	LevelRingsTableBuilder.addRing(0x0ff4, 0x06d0)
	LevelRingsTableBuilder.addRing(0x1008, 0x00c0)
	LevelRingsTableBuilder.addRing(0x100c, 0x06d0)
	LevelRingsTableBuilder.addRing(0x1010, 0x01e8)
	LevelRingsTableBuilder.addRing(0x1010, 0x0200)
	LevelRingsTableBuilder.addRing(0x1024, 0x06d0)
	LevelRingsTableBuilder.addRing(0x1028, 0x01e8)
	LevelRingsTableBuilder.addRing(0x1028, 0x0200)
	LevelRingsTableBuilder.addRing(0x1040, 0x01e8)
	LevelRingsTableBuilder.addRing(0x1040, 0x0200)
	LevelRingsTableBuilder.addRing(0x1058, 0x01e8)
	LevelRingsTableBuilder.addRing(0x1058, 0x0200)
	LevelRingsTableBuilder.addRing(0x1070, 0x01e8)
	LevelRingsTableBuilder.addRing(0x1070, 0x0200)
	LevelRingsTableBuilder.addRing(0x1190, 0x0a80)
	LevelRingsTableBuilder.addRing(0x11a8, 0x0a98)
	LevelRingsTableBuilder.addRing(0x11c0, 0x0ab0)
	LevelRingsTableBuilder.addRing(0x11d8, 0x0ac8)
	LevelRingsTableBuilder.addRing(0x11e8, 0x00d5)
	LevelRingsTableBuilder.addRing(0x11f0, 0x0ae0)
	LevelRingsTableBuilder.addRing(0x1204, 0x00f0)
	LevelRingsTableBuilder.addRing(0x1208, 0x0af8)
	LevelRingsTableBuilder.addRing(0x121c, 0x010c)
	LevelRingsTableBuilder.addRing(0x1220, 0x0b10)
	LevelRingsTableBuilder.addRing(0x1238, 0x0120)
	LevelRingsTableBuilder.addRing(0x1258, 0x012d)
	LevelRingsTableBuilder.addRing(0x1290, 0x03a8)
	LevelRingsTableBuilder.addRing(0x12a7, 0x0b2e)
	LevelRingsTableBuilder.addRing(0x12a8, 0x03a8)
	LevelRingsTableBuilder.addRing(0x12c0, 0x03a8)
	LevelRingsTableBuilder.addRing(0x12ca, 0x0b20)
	LevelRingsTableBuilder.addRing(0x12d4, 0x04f0)
	LevelRingsTableBuilder.addRing(0x12d4, 0x0510)
	LevelRingsTableBuilder.addRing(0x12d4, 0x0530)
	LevelRingsTableBuilder.addRing(0x12d4, 0x0550)
	LevelRingsTableBuilder.addRing(0x12d4, 0x0570)
	LevelRingsTableBuilder.addRing(0x12e8, 0x0b08)
	LevelRingsTableBuilder.addRing(0x1300, 0x0aec)
	LevelRingsTableBuilder.addRing(0x131c, 0x0ad4)
	LevelRingsTableBuilder.addRing(0x13a8, 0x05af)
	LevelRingsTableBuilder.addRing(0x13cb, 0x059f)
	LevelRingsTableBuilder.addRing(0x13e8, 0x0588)
	LevelRingsTableBuilder.addRing(0x1400, 0x056c)
	LevelRingsTableBuilder.addRing(0x141c, 0x0710)
	LevelRingsTableBuilder.addRing(0x141e, 0x0553)
	LevelRingsTableBuilder.addRing(0x1434, 0x0710)
	LevelRingsTableBuilder.addRing(0x144c, 0x0710)
	LevelRingsTableBuilder.addRing(0x1464, 0x0710)
	LevelRingsTableBuilder.addRing(0x15dc, 0x0250)
	LevelRingsTableBuilder.addRing(0x15f4, 0x0250)
	LevelRingsTableBuilder.addRing(0x160c, 0x0250)
	LevelRingsTableBuilder.addRing(0x1624, 0x0250)
	LevelRingsTableBuilder.addRing(0x1790, 0x0900)
	LevelRingsTableBuilder.addRing(0x17a8, 0x0918)
	LevelRingsTableBuilder.addRing(0x17c0, 0x0930)
	LevelRingsTableBuilder.addRing(0x17c8, 0x01c8)
	LevelRingsTableBuilder.addRing(0x17d8, 0x0948)
	LevelRingsTableBuilder.addRing(0x17e0, 0x01c8)
	LevelRingsTableBuilder.addRing(0x17f0, 0x0960)
	LevelRingsTableBuilder.addRing(0x17f8, 0x01c8)
	LevelRingsTableBuilder.addRing(0x1808, 0x0978)
	LevelRingsTableBuilder.addRing(0x181c, 0x0890)
	LevelRingsTableBuilder.addRing(0x1820, 0x0990)
	LevelRingsTableBuilder.addRing(0x1834, 0x0890)
	LevelRingsTableBuilder.addRing(0x184c, 0x0890)
	LevelRingsTableBuilder.addRing(0x1862, 0x0ad3)
	LevelRingsTableBuilder.addRing(0x1864, 0x0890)
	LevelRingsTableBuilder.addRing(0x1880, 0x0aec)
	LevelRingsTableBuilder.addRing(0x1898, 0x0b08)
	LevelRingsTableBuilder.addRing(0x18b5, 0x0b1f)
	LevelRingsTableBuilder.addRing(0x18d9, 0x0b2f)
	LevelRingsTableBuilder.addRing(0x1927, 0x09ae)
	LevelRingsTableBuilder.addRing(0x1928, 0x0520)
	LevelRingsTableBuilder.addRing(0x1940, 0x0520)
	LevelRingsTableBuilder.addRing(0x194a, 0x09a0)
	LevelRingsTableBuilder.addRing(0x1958, 0x0520)
	LevelRingsTableBuilder.addRing(0x1968, 0x0988)
	LevelRingsTableBuilder.addRing(0x1980, 0x096c)
	LevelRingsTableBuilder.addRing(0x199c, 0x0954)
	LevelRingsTableBuilder.addRing(0x1ae8, 0x0130)
	LevelRingsTableBuilder.addRing(0x1b00, 0x0130)
	LevelRingsTableBuilder.addRing(0x1b18, 0x0130)
	LevelRingsTableBuilder.addRing(0x1b20, 0x076c)
	LevelRingsTableBuilder.addRing(0x1b38, 0x076c)
	LevelRingsTableBuilder.addRing(0x1b50, 0x076c)
	LevelRingsTableBuilder.addRing(0x1b68, 0x076c)
	LevelRingsTableBuilder.addRing(0x1b88, 0x00e4)
	LevelRingsTableBuilder.addRing(0x1ba0, 0x00e4)
	LevelRingsTableBuilder.addRing(0x1bb8, 0x00e4)
	LevelRingsTableBuilder.addRing(0x1bec, 0x02da)
	LevelRingsTableBuilder.addRing(0x1c04, 0x02f0)
	LevelRingsTableBuilder.addRing(0x1c18, 0x0308)
	LevelRingsTableBuilder.addRing(0x1c18, 0x072c)
	LevelRingsTableBuilder.addRing(0x1c30, 0x031c)
	LevelRingsTableBuilder.addRing(0x1c30, 0x072c)
	LevelRingsTableBuilder.addRing(0x1c48, 0x072c)
	LevelRingsTableBuilder.addRing(0x1c4f, 0x032b)
	LevelRingsTableBuilder.addRing(0x1c60, 0x0880)
	LevelRingsTableBuilder.addRing(0x1c78, 0x0880)
	LevelRingsTableBuilder.addRing(0x1c90, 0x0740)
	LevelRingsTableBuilder.addRing(0x1c90, 0x0880)
	LevelRingsTableBuilder.addRing(0x1ca8, 0x0740)
	LevelRingsTableBuilder.addRing(0x1ca8, 0x0880)
	LevelRingsTableBuilder.addRing(0x1cc0, 0x0740)
	LevelRingsTableBuilder.addRing(0x1cec, 0x035a)
	LevelRingsTableBuilder.addRing(0x1d04, 0x0370)
	LevelRingsTableBuilder.addRing(0x1d08, 0x0760)
	LevelRingsTableBuilder.addRing(0x1d18, 0x0388)
	LevelRingsTableBuilder.addRing(0x1d20, 0x0760)
	LevelRingsTableBuilder.addRing(0x1d30, 0x039c)
	LevelRingsTableBuilder.addRing(0x1d38, 0x0760)
	LevelRingsTableBuilder.addRing(0x1d4f, 0x03ab)
	LevelRingsTableBuilder.addRing(0x1e28, 0x016c)
	LevelRingsTableBuilder.addRing(0x1e40, 0x016c)
	LevelRingsTableBuilder.addRing(0x1e58, 0x016c)
	LevelRingsTableBuilder.addRing(0x1e94, 0x03fc)
	LevelRingsTableBuilder.addRing(0x1eac, 0x0414)
	LevelRingsTableBuilder.addRing(0x1ec4, 0x042c)
	LevelRingsTableBuilder.addRing(0x1edc, 0x0444)
	LevelRingsTableBuilder.addRing(0x1ef4, 0x045c)
	LevelRingsTableBuilder.addRing(0x1f0c, 0x0474)
	LevelRingsTableBuilder.addRing(0x1fa8, 0x016c)
	LevelRingsTableBuilder.addRing(0x1fc0, 0x016c)
	LevelRingsTableBuilder.addRing(0x1fd8, 0x016c)
	LevelRingsTableBuilder.addRing(0x1fdc, 0x0481)
	LevelRingsTableBuilder.addRing(0x1ff4, 0x0481)
	LevelRingsTableBuilder.addRing(0x200c, 0x0481)
	LevelRingsTableBuilder.addRing(0x2024, 0x0481)
	LevelRingsTableBuilder.addRing(0x21a8, 0x0af0)
	LevelRingsTableBuilder.addRing(0x21d0, 0x0adc)
	LevelRingsTableBuilder.addRing(0x21f0, 0x0ac0)
	LevelRingsTableBuilder.addRing(0x220c, 0x0aa0)
	LevelRingsTableBuilder.addRing(0x2230, 0x0a88)
	LevelRingsTableBuilder.addRing(0x2368, 0x0428)
	LevelRingsTableBuilder.addRing(0x2380, 0x0428)
	LevelRingsTableBuilder.addRing(0x2398, 0x0428)
	LevelRingsTableBuilder.addRing(0x2464, 0x0755)
	LevelRingsTableBuilder.addRing(0x2480, 0x076d)
	LevelRingsTableBuilder.addRing(0x2498, 0x0788)

	// Remove those misplaced rings in the (formerly hard-to-reach) secret room
	//LevelRingsTableBuilder.addRing(0x249c, 0x0528)
	//LevelRingsTableBuilder.addRing(0x249c, 0x0540)
	//LevelRingsTableBuilder.addRing(0x249c, 0x0558)
	//LevelRingsTableBuilder.addRing(0x249c, 0x0570)

	LevelRingsTableBuilder.addRing(0x24b2, 0x079e)
	LevelRingsTableBuilder.addRing(0x24d2, 0x07ad)
	LevelRingsTableBuilder.addRing(0x25b8, 0x0418)
	LevelRingsTableBuilder.addRing(0x25d0, 0x0418)
	LevelRingsTableBuilder.addRing(0x25e8, 0x0418)
	LevelRingsTableBuilder.addRing(0x2668, 0x02d0)
	LevelRingsTableBuilder.addRing(0x2680, 0x02d0)
	LevelRingsTableBuilder.addRing(0x2698, 0x02d0)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) != 0)
	{
		LevelRingsTableBuilder.addRing(0x269c, 0x0930)
		LevelRingsTableBuilder.addRing(0x26a8, 0x0918)
		LevelRingsTableBuilder.addRing(0x26b4, 0x0900)
		LevelRingsTableBuilder.addRing(0x26b4, 0x0930)
		LevelRingsTableBuilder.addRing(0x26c0, 0x08e8)
		LevelRingsTableBuilder.addRing(0x26c0, 0x0918)
		LevelRingsTableBuilder.addRing(0x26cc, 0x0900)
		LevelRingsTableBuilder.addRing(0x26cc, 0x0930)
		LevelRingsTableBuilder.addRing(0x26d8, 0x0918)
		LevelRingsTableBuilder.addRing(0x26e4, 0x0930)
		LevelRingsTableBuilder.addRing(0x279c, 0x0930)
		LevelRingsTableBuilder.addRing(0x27a8, 0x0918)
		LevelRingsTableBuilder.addRing(0x27b4, 0x0900)
		LevelRingsTableBuilder.addRing(0x27b4, 0x0930)
		LevelRingsTableBuilder.addRing(0x27c0, 0x08e8)
		LevelRingsTableBuilder.addRing(0x27c0, 0x0918)
		LevelRingsTableBuilder.addRing(0x27cc, 0x0900)
		LevelRingsTableBuilder.addRing(0x27cc, 0x0930)
		LevelRingsTableBuilder.addRing(0x27d8, 0x0918)
		LevelRingsTableBuilder.addRing(0x27e4, 0x0930)
	}

	LevelRingsTableBuilder.addRing(0x27e8, 0x0350)
	LevelRingsTableBuilder.addRing(0x2800, 0x0350)
	LevelRingsTableBuilder.addRing(0x2818, 0x0350)
	LevelRingsTableBuilder.addRing(0x2820, 0x0290)
	LevelRingsTableBuilder.addRing(0x2820, 0x02a8)
	LevelRingsTableBuilder.addRing(0x2820, 0x02c0)
	LevelRingsTableBuilder.addRing(0x2820, 0x02d8)
	LevelRingsTableBuilder.addRing(0x2820, 0x02f0)
	LevelRingsTableBuilder.addRing(0x2848, 0x01c8)
	LevelRingsTableBuilder.addRing(0x2848, 0x01e4)
	LevelRingsTableBuilder.addRing(0x2848, 0x0200)
	LevelRingsTableBuilder.addRing(0x2848, 0x021c)
	LevelRingsTableBuilder.addRing(0x2848, 0x0238)
	LevelRingsTableBuilder.addRing(0x2860, 0x01e4)
	LevelRingsTableBuilder.addRing(0x2860, 0x0200)
	LevelRingsTableBuilder.addRing(0x2860, 0x021c)
	LevelRingsTableBuilder.addRing(0x2860, 0x0238)
	LevelRingsTableBuilder.addRing(0x2878, 0x0200)
	LevelRingsTableBuilder.addRing(0x2878, 0x021c)
	LevelRingsTableBuilder.addRing(0x2878, 0x0238)
	LevelRingsTableBuilder.addRing(0x2890, 0x021c)
	LevelRingsTableBuilder.addRing(0x2890, 0x0238)
	LevelRingsTableBuilder.addRing(0x28a8, 0x0238)
	LevelRingsTableBuilder.addRing(0x2910, 0x0958)
	LevelRingsTableBuilder.addRing(0x2928, 0x0958)
	LevelRingsTableBuilder.addRing(0x2940, 0x0958)
	LevelRingsTableBuilder.addRing(0x2998, 0x0980)
	LevelRingsTableBuilder.addRing(0x29b0, 0x0980)
	LevelRingsTableBuilder.addRing(0x29c8, 0x0980)
	LevelRingsTableBuilder.addRing(0x2a00, 0x09b0)
	LevelRingsTableBuilder.addRing(0x2a18, 0x09b0)
	LevelRingsTableBuilder.addRing(0x2a30, 0x09b0)
	LevelRingsTableBuilder.addRing(0x2d27, 0x02ae)
	LevelRingsTableBuilder.addRing(0x2d4c, 0x02a0)
	LevelRingsTableBuilder.addRing(0x2d68, 0x0288)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) == 2)
	{
		// Extra rings before Knuckles' boss fight
		LevelRingsTableBuilder.addRing(0x2d70, 0x0a68)
		LevelRingsTableBuilder.addRing(0x2d80, 0x026c)
		LevelRingsTableBuilder.addRing(0x2d88, 0x0a68)
		LevelRingsTableBuilder.addRing(0x2d9e, 0x0252)
		LevelRingsTableBuilder.addRing(0x2da0, 0x0a68)
	}
	else
	{
		LevelRingsTableBuilder.addRing(0x2d80, 0x026c)
		LevelRingsTableBuilder.addRing(0x2d9e, 0x0252)
	}

	u32[A1] = 0xffffffff
	A1 += 4
}


function void LevelRingsTableBuilder.buildRings_CNZ2()
{
	LevelRingsTableBuilder.addRing(0x0000, 0x0000)
	LevelRingsTableBuilder.addRing(0x0b64, 0x07d4)
	LevelRingsTableBuilder.addRing(0x0b80, 0x07ec)
	LevelRingsTableBuilder.addRing(0x0b98, 0x0808)
	LevelRingsTableBuilder.addRing(0x0bb4, 0x0820)
	LevelRingsTableBuilder.addRing(0x0bd8, 0x0830)
	LevelRingsTableBuilder.addRing(0x0c98, 0x06d0)
	LevelRingsTableBuilder.addRing(0x0cb0, 0x06d0)
	LevelRingsTableBuilder.addRing(0x0cc8, 0x06d0)
	LevelRingsTableBuilder.addRing(0x0cd0, 0x0398)
	LevelRingsTableBuilder.addRing(0x0cd0, 0x03b8)
	LevelRingsTableBuilder.addRing(0x0cd0, 0x03d8)
	LevelRingsTableBuilder.addRing(0x0cd0, 0x03f8)
	LevelRingsTableBuilder.addRing(0x0ce0, 0x06d0)
	LevelRingsTableBuilder.addRing(0x0d1c, 0x0350)
	LevelRingsTableBuilder.addRing(0x0d28, 0x06ac)
	LevelRingsTableBuilder.addRing(0x0d34, 0x0350)
	LevelRingsTableBuilder.addRing(0x0d40, 0x06ac)
	LevelRingsTableBuilder.addRing(0x0d4c, 0x0350)
	LevelRingsTableBuilder.addRing(0x0d58, 0x06ac)
	LevelRingsTableBuilder.addRing(0x0d64, 0x0350)
	LevelRingsTableBuilder.addRing(0x0d64, 0x0a54)
	LevelRingsTableBuilder.addRing(0x0d80, 0x0a6c)
	LevelRingsTableBuilder.addRing(0x0d98, 0x0a88)
	LevelRingsTableBuilder.addRing(0x0db4, 0x0aa0)
	LevelRingsTableBuilder.addRing(0x0dd8, 0x0ab0)
	LevelRingsTableBuilder.addRing(0x0e1c, 0x02d0)
	LevelRingsTableBuilder.addRing(0x0e28, 0x072c)
	LevelRingsTableBuilder.addRing(0x0e34, 0x02d0)
	LevelRingsTableBuilder.addRing(0x0e40, 0x072c)
	LevelRingsTableBuilder.addRing(0x0e4c, 0x02d0)
	LevelRingsTableBuilder.addRing(0x0e58, 0x072c)
	LevelRingsTableBuilder.addRing(0x0e64, 0x02d0)
	LevelRingsTableBuilder.addRing(0x0ea8, 0x072c)
	LevelRingsTableBuilder.addRing(0x0ec0, 0x072c)
	LevelRingsTableBuilder.addRing(0x0ed8, 0x072c)
	LevelRingsTableBuilder.addRing(0x0f98, 0x0508)
	LevelRingsTableBuilder.addRing(0x0fa8, 0x072c)
	LevelRingsTableBuilder.addRing(0x0fb0, 0x0508)
	LevelRingsTableBuilder.addRing(0x0fc0, 0x072c)
	LevelRingsTableBuilder.addRing(0x0fc8, 0x0508)
	LevelRingsTableBuilder.addRing(0x0fd8, 0x072c)
	LevelRingsTableBuilder.addRing(0x1008, 0x04f8)
	LevelRingsTableBuilder.addRing(0x1018, 0x072c)
	LevelRingsTableBuilder.addRing(0x1028, 0x04e8)
	LevelRingsTableBuilder.addRing(0x1048, 0x04d8)
	LevelRingsTableBuilder.addRing(0x1060, 0x0a88)
	LevelRingsTableBuilder.addRing(0x1080, 0x0a68)
	LevelRingsTableBuilder.addRing(0x10a0, 0x0a48)
	LevelRingsTableBuilder.addRing(0x10a8, 0x0400)
	LevelRingsTableBuilder.addRing(0x10c0, 0x0400)
	LevelRingsTableBuilder.addRing(0x10c0, 0x0a28)
	LevelRingsTableBuilder.addRing(0x10d8, 0x0400)
	LevelRingsTableBuilder.addRing(0x10e0, 0x0a08)
	LevelRingsTableBuilder.addRing(0x1100, 0x09e8)
	LevelRingsTableBuilder.addRing(0x11c0, 0x0600)
	LevelRingsTableBuilder.addRing(0x11d8, 0x0600)
	LevelRingsTableBuilder.addRing(0x11f0, 0x0600)
	LevelRingsTableBuilder.addRing(0x1248, 0x0428)
	LevelRingsTableBuilder.addRing(0x1260, 0x0428)
	LevelRingsTableBuilder.addRing(0x1278, 0x0428)
	LevelRingsTableBuilder.addRing(0x12dc, 0x06f0)
	LevelRingsTableBuilder.addRing(0x12f4, 0x06f0)
	LevelRingsTableBuilder.addRing(0x130c, 0x06f0)
	LevelRingsTableBuilder.addRing(0x1324, 0x06f0)
	LevelRingsTableBuilder.addRing(0x135c, 0x05f0)
	LevelRingsTableBuilder.addRing(0x1374, 0x05f0)
	LevelRingsTableBuilder.addRing(0x138c, 0x05f0)
	LevelRingsTableBuilder.addRing(0x139c, 0x0484)
	LevelRingsTableBuilder.addRing(0x13a4, 0x05f0)
	LevelRingsTableBuilder.addRing(0x13b4, 0x0484)
	LevelRingsTableBuilder.addRing(0x13cc, 0x0484)
	LevelRingsTableBuilder.addRing(0x13dc, 0x0730)
	LevelRingsTableBuilder.addRing(0x13e4, 0x0484)
	LevelRingsTableBuilder.addRing(0x13f4, 0x0730)
	LevelRingsTableBuilder.addRing(0x140c, 0x0730)
	LevelRingsTableBuilder.addRing(0x141c, 0x0aa8)
	LevelRingsTableBuilder.addRing(0x1424, 0x0730)
	LevelRingsTableBuilder.addRing(0x1434, 0x0aa8)
	LevelRingsTableBuilder.addRing(0x144c, 0x0aa8)
	LevelRingsTableBuilder.addRing(0x1464, 0x0aa8)
	LevelRingsTableBuilder.addRing(0x1464, 0x0b2c)
	LevelRingsTableBuilder.addRing(0x147c, 0x0b2c)
	LevelRingsTableBuilder.addRing(0x1494, 0x0b2c)
	LevelRingsTableBuilder.addRing(0x14ac, 0x0b2c)
	LevelRingsTableBuilder.addRing(0x14c8, 0x01a8)
	LevelRingsTableBuilder.addRing(0x14e0, 0x01a8)
	LevelRingsTableBuilder.addRing(0x14f8, 0x01a8)
	LevelRingsTableBuilder.addRing(0x1528, 0x0898)
	LevelRingsTableBuilder.addRing(0x1540, 0x0898)
	LevelRingsTableBuilder.addRing(0x1558, 0x0898)
	LevelRingsTableBuilder.addRing(0x159c, 0x0190)
	LevelRingsTableBuilder.addRing(0x15b4, 0x0190)
	LevelRingsTableBuilder.addRing(0x15cc, 0x0190)
	LevelRingsTableBuilder.addRing(0x15e4, 0x0190)
	LevelRingsTableBuilder.addRing(0x16e8, 0x09b0)
	LevelRingsTableBuilder.addRing(0x1700, 0x09b0)
	LevelRingsTableBuilder.addRing(0x1718, 0x09b0)
	LevelRingsTableBuilder.addRing(0x179c, 0x05f0)
	LevelRingsTableBuilder.addRing(0x17b4, 0x05f0)
	LevelRingsTableBuilder.addRing(0x17cc, 0x05f0)
	LevelRingsTableBuilder.addRing(0x17e4, 0x05f0)
	LevelRingsTableBuilder.addRing(0x195c, 0x02b0)
	LevelRingsTableBuilder.addRing(0x1974, 0x02b0)
	LevelRingsTableBuilder.addRing(0x198c, 0x02b0)
	LevelRingsTableBuilder.addRing(0x19a4, 0x02b0)
	LevelRingsTableBuilder.addRing(0x1a18, 0x0454)
	LevelRingsTableBuilder.addRing(0x1a30, 0x0454)
	LevelRingsTableBuilder.addRing(0x1a48, 0x0454)
	LevelRingsTableBuilder.addRing(0x1a68, 0x06d8)
	LevelRingsTableBuilder.addRing(0x1a80, 0x06d8)
	LevelRingsTableBuilder.addRing(0x1a98, 0x06d8)
	LevelRingsTableBuilder.addRing(0x1ad8, 0x048c)
	LevelRingsTableBuilder.addRing(0x1adc, 0x0298)
	LevelRingsTableBuilder.addRing(0x1af0, 0x048c)
	LevelRingsTableBuilder.addRing(0x1af4, 0x0298)
	LevelRingsTableBuilder.addRing(0x1b08, 0x048c)
	LevelRingsTableBuilder.addRing(0x1b0c, 0x0298)
	LevelRingsTableBuilder.addRing(0x1b60, 0x0691)
	LevelRingsTableBuilder.addRing(0x1b80, 0x0691)
	LevelRingsTableBuilder.addRing(0x1ba0, 0x0691)
	LevelRingsTableBuilder.addRing(0x1c00, 0x0968)
	LevelRingsTableBuilder.addRing(0x1c18, 0x0968)
	LevelRingsTableBuilder.addRing(0x1c30, 0x0968)
	LevelRingsTableBuilder.addRing(0x1c48, 0x0968)
	LevelRingsTableBuilder.addRing(0x1d00, 0x0920)
	LevelRingsTableBuilder.addRing(0x1d18, 0x0920)
	LevelRingsTableBuilder.addRing(0x1d30, 0x0920)
	LevelRingsTableBuilder.addRing(0x1d30, 0x0b2c)
	LevelRingsTableBuilder.addRing(0x1d50, 0x0b1c)
	LevelRingsTableBuilder.addRing(0x1d68, 0x0b08)
	LevelRingsTableBuilder.addRing(0x1d7c, 0x0af0)
	LevelRingsTableBuilder.addRing(0x1d94, 0x0ad8)
	LevelRingsTableBuilder.addRing(0x1e7c, 0x03ec)
	LevelRingsTableBuilder.addRing(0x1e94, 0x03ec)
	LevelRingsTableBuilder.addRing(0x1eac, 0x03ec)

	s16 offsetX = 0
	s16 offsetY = 0
	if (Game.getSetting(SETTING_LEVELLAYOUTS) == 2)
	{
		offsetX = 0x18
		offsetY = 0x08
		LevelRingsTableBuilder.addRing(0x2018, 0x0b10)
		LevelRingsTableBuilder.addRing(0x202c, 0x09a0)
		LevelRingsTableBuilder.addRing(0x2030, 0x0b10)
		LevelRingsTableBuilder.addRing(0x2044, 0x09a0)
		LevelRingsTableBuilder.addRing(0x2048, 0x0b10)
		LevelRingsTableBuilder.addRing(0x205c, 0x09a0)
		LevelRingsTableBuilder.addRing(0x2060, 0x0b10)
		LevelRingsTableBuilder.addRing(0x2074, 0x09a0)
	}
	else if (Game.getSetting(SETTING_LEVELLAYOUTS) == 1)
	{
		LevelRingsTableBuilder.addRing(0x2014, 0x0998)
		LevelRingsTableBuilder.addRing(0x2018, 0x0b10)
		LevelRingsTableBuilder.addRing(0x202c, 0x0998)
		LevelRingsTableBuilder.addRing(0x2030, 0x0b10)
		LevelRingsTableBuilder.addRing(0x2044, 0x0998)
		LevelRingsTableBuilder.addRing(0x2048, 0x0b10)
		LevelRingsTableBuilder.addRing(0x205c, 0x0998)
		LevelRingsTableBuilder.addRing(0x2060, 0x0b10)
	}
	else
	{
		LevelRingsTableBuilder.addRing(0x2014, 0x0998)
		LevelRingsTableBuilder.addRing(0x202c, 0x0998)
		LevelRingsTableBuilder.addRing(0x2044, 0x0998)
		LevelRingsTableBuilder.addRing(0x205c, 0x0998)
	}

	LevelRingsTableBuilder.addRing(0x2078, 0x02a0)
	LevelRingsTableBuilder.addRing(0x2090, 0x02a0)
	LevelRingsTableBuilder.addRing(0x20a8, 0x02a0)
	LevelRingsTableBuilder.addRing(0x20e8, 0x0898)
	LevelRingsTableBuilder.addRing(0x2100, 0x0898)
	LevelRingsTableBuilder.addRing(0x2118, 0x0898)
	LevelRingsTableBuilder.addRing(0x2194 - offsetX, 0x0998 + offsetY)
	LevelRingsTableBuilder.addRing(0x21ac - offsetX, 0x0998 + offsetY)
	LevelRingsTableBuilder.addRing(0x21c4 - offsetX, 0x0998 + offsetY)
	LevelRingsTableBuilder.addRing(0x21dc - offsetX, 0x0998 + offsetY)

	LevelRingsTableBuilder.addRing(0x22e8, 0x08f8)
	LevelRingsTableBuilder.addRing(0x2300, 0x08f8)
	LevelRingsTableBuilder.addRing(0x2318, 0x08f8)
	LevelRingsTableBuilder.addRing(0x2320, 0x02b0)
	LevelRingsTableBuilder.addRing(0x2348, 0x02a0)
	LevelRingsTableBuilder.addRing(0x2368, 0x0288)
	LevelRingsTableBuilder.addRing(0x2380, 0x0268)
	LevelRingsTableBuilder.addRing(0x239c, 0x0998)
	LevelRingsTableBuilder.addRing(0x23a0, 0x0250)
	LevelRingsTableBuilder.addRing(0x23b4, 0x0998)
	LevelRingsTableBuilder.addRing(0x23cc, 0x0998)
	LevelRingsTableBuilder.addRing(0x23e4, 0x0998)
	LevelRingsTableBuilder.addRing(0x25b4, 0x07ac)
	LevelRingsTableBuilder.addRing(0x25d0, 0x079c)
	LevelRingsTableBuilder.addRing(0x25e8, 0x0788)
	LevelRingsTableBuilder.addRing(0x25fc, 0x0770)
	LevelRingsTableBuilder.addRing(0x2614, 0x0758)
	LevelRingsTableBuilder.addRing(0x26c8, 0x0700)
	LevelRingsTableBuilder.addRing(0x26e0, 0x0700)
	LevelRingsTableBuilder.addRing(0x26f8, 0x0700)
	LevelRingsTableBuilder.addRing(0x27a4, 0x0630)
	LevelRingsTableBuilder.addRing(0x27c8, 0x0620)
	LevelRingsTableBuilder.addRing(0x27e8, 0x0608)
	LevelRingsTableBuilder.addRing(0x2800, 0x05ec)
	LevelRingsTableBuilder.addRing(0x281c, 0x05d4)
	LevelRingsTableBuilder.addRing(0x2910, 0x0a00)
	LevelRingsTableBuilder.addRing(0x2928, 0x0a18)
	LevelRingsTableBuilder.addRing(0x2940, 0x0830)
	LevelRingsTableBuilder.addRing(0x2940, 0x0848)
	LevelRingsTableBuilder.addRing(0x2940, 0x0a30)
	LevelRingsTableBuilder.addRing(0x2958, 0x0830)
	LevelRingsTableBuilder.addRing(0x2958, 0x0848)
	LevelRingsTableBuilder.addRing(0x2958, 0x0a48)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) != 0)
	{
		LevelRingsTableBuilder.addRing(0x295c, 0x0968)
	}

	LevelRingsTableBuilder.addRing(0x2964, 0x05d4)
	LevelRingsTableBuilder.addRing(0x2970, 0x0830)
	LevelRingsTableBuilder.addRing(0x2970, 0x0848)
	LevelRingsTableBuilder.addRing(0x2970, 0x0a60)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) != 0)
	{
		LevelRingsTableBuilder.addRing(0x2974, 0x0968)
	}

	LevelRingsTableBuilder.addRing(0x2980, 0x05ec)
	LevelRingsTableBuilder.addRing(0x2988, 0x0a78)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) != 0)
	{
		LevelRingsTableBuilder.addRing(0x298c, 0x0968)
	}

	LevelRingsTableBuilder.addRing(0x2998, 0x0608)
	LevelRingsTableBuilder.addRing(0x29a0, 0x0a90)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) != 0)
	{
		LevelRingsTableBuilder.addRing(0x29a4, 0x0968)
	}

	LevelRingsTableBuilder.addRing(0x29b8, 0x0620)
	LevelRingsTableBuilder.addRing(0x29dc, 0x0630)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) != 0)
	{
		LevelRingsTableBuilder.addRing(0x2a10, 0x0a14)
		LevelRingsTableBuilder.addRing(0x2a10, 0x0a2c)
	}

	LevelRingsTableBuilder.addRing(0x2a1c, 0x04d0)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) != 0)
	{
		LevelRingsTableBuilder.addRing(0x2a1c, 0x0980)
		LevelRingsTableBuilder.addRing(0x2a28, 0x0a14)
		LevelRingsTableBuilder.addRing(0x2a28, 0x0a2c)
	}

	LevelRingsTableBuilder.addRing(0x2a34, 0x04d0)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) != 0)
	{
		LevelRingsTableBuilder.addRing(0x2a34, 0x0980)
		LevelRingsTableBuilder.addRing(0x2a40, 0x0a14)
		LevelRingsTableBuilder.addRing(0x2a40, 0x0a2c)
	}

	LevelRingsTableBuilder.addRing(0x2a4c, 0x04d0)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) != 0)
	{
		LevelRingsTableBuilder.addRing(0x2a4c, 0x0980)
		LevelRingsTableBuilder.addRing(0x2a58, 0x0a14)
		LevelRingsTableBuilder.addRing(0x2a58, 0x0a2c)
	}

	LevelRingsTableBuilder.addRing(0x2a64, 0x04d0)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) != 0)
	{
		LevelRingsTableBuilder.addRing(0x2a64, 0x0980)
		LevelRingsTableBuilder.addRing(0x2a70, 0x0a14)
		LevelRingsTableBuilder.addRing(0x2a70, 0x0a2c)
	}

	LevelRingsTableBuilder.addRing(0x2ab0, 0x07ac)
	LevelRingsTableBuilder.addRing(0x2ad0, 0x079c)
	LevelRingsTableBuilder.addRing(0x2ae0, 0x0a90)
	LevelRingsTableBuilder.addRing(0x2ae8, 0x0788)
	LevelRingsTableBuilder.addRing(0x2af8, 0x0a78)
	LevelRingsTableBuilder.addRing(0x2afc, 0x0770)
	LevelRingsTableBuilder.addRing(0x2b10, 0x0a60)
	LevelRingsTableBuilder.addRing(0x2b14, 0x0758)
	LevelRingsTableBuilder.addRing(0x2b28, 0x0a48)
	LevelRingsTableBuilder.addRing(0x2b40, 0x0a30)
	LevelRingsTableBuilder.addRing(0x2b58, 0x0a18)
	LevelRingsTableBuilder.addRing(0x2b70, 0x0a00)
	LevelRingsTableBuilder.addRing(0x2b94, 0x0308)
	LevelRingsTableBuilder.addRing(0x2bac, 0x0308)
	LevelRingsTableBuilder.addRing(0x2bc4, 0x0308)
	LevelRingsTableBuilder.addRing(0x2bd0, 0x08ea)
	LevelRingsTableBuilder.addRing(0x2bdc, 0x0308)
	LevelRingsTableBuilder.addRing(0x2be8, 0x08ea)
	LevelRingsTableBuilder.addRing(0x2c00, 0x08ea)
	LevelRingsTableBuilder.addRing(0x2c18, 0x08ea)
	LevelRingsTableBuilder.addRing(0x2c30, 0x08ea)
	LevelRingsTableBuilder.addRing(0x2c38, 0x016c)
	LevelRingsTableBuilder.addRing(0x2c50, 0x016c)
	LevelRingsTableBuilder.addRing(0x2c68, 0x016c)
	LevelRingsTableBuilder.addRing(0x2c80, 0x016c)
	LevelRingsTableBuilder.addRing(0x2d58, 0x0268)
	LevelRingsTableBuilder.addRing(0x2d70, 0x0268)
	LevelRingsTableBuilder.addRing(0x2d88, 0x0268)
	LevelRingsTableBuilder.addRing(0x32f8, 0x0488)
	LevelRingsTableBuilder.addRing(0x3310, 0x0488)
	LevelRingsTableBuilder.addRing(0x3328, 0x0488)
	LevelRingsTableBuilder.addRing(0x349c, 0x0410)
	LevelRingsTableBuilder.addRing(0x34b4, 0x0410)
	LevelRingsTableBuilder.addRing(0x34cc, 0x0410)
	LevelRingsTableBuilder.addRing(0x34e4, 0x0410)
	LevelRingsTableBuilder.addRing(0x3528, 0x03ac)
	LevelRingsTableBuilder.addRing(0x3540, 0x03ac)
	LevelRingsTableBuilder.addRing(0x3558, 0x03ac)
	LevelRingsTableBuilder.addRing(0x35e8, 0x0988)
	LevelRingsTableBuilder.addRing(0x3608, 0x0968)
	LevelRingsTableBuilder.addRing(0x3628, 0x0948)
	LevelRingsTableBuilder.addRing(0x3648, 0x0928)
	LevelRingsTableBuilder.addRing(0x3668, 0x0908)
	u32[A1] = 0xffffffff
	A1 += 4
}
